package facade;


import java.util.List;
import java.util.Properties;

import javax.ejb.EJB;
import javax.ejb.Stateful;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import sessionbeans.AdminArticulos;
import sessionbeans.AdminDistribucion;
import sessionbeans.AdminFabricacion;
import sessionbeans.AdminMateriaPrima;



import entitiesdto.ArticuloDTO;
import entitiesdto.CantidadMateriaPrimaDTO;
import entitiesdto.MateriaPrimaDTO;
import entitiesdto.SolicitudFabricacionDTO;
import entitiesdto.StockMateriaPrimaDTO;
import facade.SessionFacade;

@Stateful
public class SessionFacadeBean implements SessionFacade {

	private static SessionFacadeBean INSTANACE;
	// Estos son los session beans que el session facade se encarga de llamar

	@EJB
	private AdminArticulos adminArticulos;
	@EJB
	private AdminDistribucion adminDistribucion;
	@EJB
	private AdminFabricacion adminFabricacion;
	@EJB
	private AdminMateriaPrima adminMateriaPrima;

	InitialContext ic = null;

	public SessionFacadeBean() {
		try {
	
		
		} catch (Exception ex) {
			ex.printStackTrace();
		}

	}
	
	public static SessionFacadeBean getInstanace(){
		if(INSTANACE==null){
			INSTANACE= new SessionFacadeBean();
		}
		return INSTANACE;
	}
	

	public boolean ingresarNuevoArticulo(ArticuloDTO art) {
		return adminArticulos.ingresarNuevoArticulo(art);
	}

	@Override
	public boolean crearPedidoFabricacion() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean generarReposicionArticulos() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean modificarPedidoFabricacion() {
		// TODO Auto-generated method stub
		return false;
	}


	public boolean recibirSolicitudFabricacion(SolicitudFabricacionDTO solfab) {
		return adminFabricacion.crearSolicitudFabricacion(solfab);
	}

	@Override
	public boolean verificarPedidosExistentes() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public List<MateriaPrimaDTO> getMateriasPrimas() {
		return adminArticulos.getMateriasPrimas();
	}

	@Override
	public List<StockMateriaPrimaDTO> recibirProvedores(
			List<StockMateriaPrimaDTO> actualizacionStock) {
		// TODO Auto-generated method stub
			return adminMateriaPrima.recibirProvedores(actualizacionStock);
}

	@Override
	public String getTexto(int numero) {
		// TODO Auto-generated method stub
		return null;
	}


}
